package com.yc.sole.system.biz;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.yc.sole.common.constant.PubConstant;
import com.yc.sole.system.dto.ConfigDto;
import com.yc.sole.system.repository.ConfigRepository;
import com.yc.sole.system.request.ConfigReq;
import com.yc.sole.system.response.ConfigResp;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Collection;

/**
 * 服务接口实现
 *
 * @author yizuomin
 * @date 2024-01-23
 **/
@Slf4j
@Service
@RequiredArgsConstructor
public class ConfigBiz {

    private final ConfigRepository configRepository;

    /**
     * 初始化
     */
    @Transactional(rollbackFor = Exception.class)
    public void init() {
        ConfigDto dto = new ConfigDto();
        dto.setEnterpriseName("");
        dto.setEnterpriseFullName("");
        dto.setLandlineNum("");
        dto.setFaxNum("");
        dto.setPhoneNum("");
        dto.setAddress("");
        dto.setDefaultPassword(PubConstant.DEFAULT_PASSWORD);
        dto.setTaxRate(13);
        dto.setQrCodeUrl("");
        configRepository.saveConfig(dto);
    }

    /**
     * 修改
     *
     * @param configReq
     */
    @Transactional(rollbackFor = Exception.class)
    public void updateConfigById(ConfigReq configReq) {
        ConfigDto dto = new ConfigDto();
        BeanUtil.copyProperties(configReq, dto);
        configRepository.updateConfigById(dto);
    }

    /**
     * 通过id批量删除
     *
     * @param ids
     */
    @Transactional(rollbackFor = Exception.class)
    public void deleteConfigByIds(Collection<String> ids) {
        configRepository.deleteConfigByIds(ids);
    }

    /**
     * 查询配置
     *
     * @return
     */
    public ConfigResp selectConfig() {
        return BeanUtil.copyProperties(configRepository.selectConfig(), ConfigResp.class);
    }
}
